<?php
/**
 * Created by PhpStorm.
 * User: dapeng
 * Date: 2018/4/19
 * Time: 下午6:30
 */

namespace app\company\controller;
use think\Controller;
use app\company\model\Users as MUsers;
use think\Db;
use think\Session;
use Qiniu\Auth as Auth;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;
use think\Validate;
use think\Loader;
class Users extends Controller
{
    /**
     * 进入登陆页面
     */
    function index()
    {
        if( !session('?jigou')){
            return view("login");
        }else{
            $tel=Session::get('jigou');
            $this->assign('tel',$tel);
            return view("mine");
        }
    }


    /**
     * 登陆的方法
     */
    function users()
    {
        //获取请求的数据
        $data=[
            'mobile'=>$_POST['mobile'],
            'password'=>$_POST['password']
        ];
        //引入自定义的简单的验证类
        $rule='app\validate\Userlogin';
        //使用控制层自带的验证类
        $check = $this->validate($data,$rule);
        if(true !== $check){
            //返回错误信息
            return['status'=>-1,'message'=>$check];
        }else{
            //使用模型层的对象进行数据的查询，使用闭包的方式
            $res = MUsers::get(function($query) use($data){
                $query->where('tel',$data['mobile'])->where('password',$data['password']);
            });
            if($res==null){
                return['status'=>0,'message'=>"手机号或密码不正确，请检查"];
            }else{
                //把查到的用户id及用户名用session存储起来，留待以后使用
                Session::set('id',$res['id']);
                Session::set('jigouname',$res['name']);
                Session::set('jigou',$data['mobile']);
                return['status'=>1,'message'=>"登录成功"];
            }
        }
    }

    function login(){
        return view("login");
    }
  function usersreg(){
      $res=0;
      $this->assign("res",$res);
      return view("regist");
  }
    function reg(){
        //获取请求的数据
        $data = [
            'tel' => $_POST['tel'],
            'address' => $_POST['address'],
            'name' => $_POST['name'],
            'password'=>$_POST['pass']
        ];
        $rule=[
            'name|机构名称'  => 'require|chs',
            'tel|联系电话'=>[
                'require',//必填。
                "mobile",//验证手机号
                'unique'=>'liewu_jigou',//验证是否是内部手机.验证手机号在user表中唯一性
            ],
            'address|地址'  => 'require|chs',
            'password|密码'  => 'require|length:6,20|alphaNum',//密码 必填 字母或者数字 长度是6到20位
        ];
        $check = $this->validate($data, $rule);
        if (true !== $check) {
            //返回错误信息
            // return ['status' => -1, 'message' => $check];
            $this->assign("msg",$check);
            return view("regist");
        } else {
            //true 使用模型层的对象进行数据的添加
            if (MUsers::create($data)) {
                Session::set('tel', $data['tel']);
                Session::set('password', $data['password']);
                // return ['status' => 1, 'message' => "恭喜,注册成功"];
                $this->assign("msg","恭喜,注册成功");
                return view("regist");
            } else {
                // return ['status' => 0, 'message' => "注册失败,请检查"];
                $this->assign("msg","注册失败,请检查");
                return view("regist");
            }
        }
    }
function changepwd(){
    return view("changepwd");
}

 //修改机构密码接口
    function changepwd3(){

        //拿到之前生成验证码存的数
        $code=Session::get('code');

       if($code!=$_POST['tel']){
           return['status'=>-1,'message'=>"获取验证码失败！"];
       }
        $data=[
            'phone'=>$_POST['phone'],
        ];
        $rule = [
            'phone|手机号'=>'require|mobile',
        ];
        //使用控制层自带的验证类
        $check = $this->validate($data, $rule);
        if(true!==$check){
            $res=$check;
            return['status'=>-1,'message'=>$check];
        }
        else{
            $data1=[
                'password'=>$_POST['pwd']
            ];
           $id=Session::get('id');
            $result=db('liewu_jigou')
                ->where('id',$id)
                ->where('tel',$_POST['phone'])
                ->update(
                    $data1
                );
            if($result==1){
                return['status'=>1,'message'=>'修改成功！'];
            }
        }
    }

 //修改机构密码接口(发送短信验证码)
    function changepwd2(){
    $data=[
        'tel'=>$_POST['phone'],
    ];
        $rule = [
            'tel|手机号'=>'require|mobile',
        ];
        //用这个手机号去查一下数据库
        $result = Db::table('liewu_jigou')->where("tel",$data['tel'])->select();
        if ($result) {
             //使用控制层自带的验证类
        $check = $this->validate($data, $rule);
        if(true!==$check){
            $res=$check;
            return['status'=>-1,'message'=>$check];
        }else{
            $number = $_REQUEST['phone'];//input助手函数   获取输入数据 支持默认值和过滤

            Loader::import('alimsg.api_demo.SmsDemo',EXTEND_PATH);//对应extend目录，路径，如果你对SmsDemo类添加了命名空间可在上面 use 后在此处直接实例化

            $code = $this->random();
            //得到信息文件并执行.实例化阿里短信类
            $msg = new \SmsDemo('LTAIGs6RxDx2sdpr','eKtgIADyY9yJJQUmtVIRMAv4bBYakx');//注意类名前面的  \ 此处写的就是Access key id 和Access key secret

            //此配置在sdk包中有相关例子
            $res = $msg->sendSms(
            //短信签名名称
                "徐昭跃",//此处填写你在阿里云平台配置的短信签名名称（第二步有说明）
                //短信模板code
                "SMS_136035063",//此处填写你在阿里云平台配置的短信模板code（第二步有说明）
                //短信接收者的手机号码
                " $number",
                //模板信息
                Array(
                    'code' => $code,//随机变化的
                )
            );
            $response = array($res);
             return['status'=>1,'message'=>'发送成功'];
            }            
        }else{
            return['status'=>0,'message'=>'该手机号还未注册，请先去注册'];
        }
    }
    //生成所发送的验证码并返回
    public function random()
    {
        $length = 6;
        $char = '0123456789';
        $code = '';
        while(strlen($code) < $length){
            //截取字符串长度
            $code .= substr($char,(mt_rand()%strlen($char)),1);
        }
        session('code',$code);
        return $code;
    }



    //updata 修改机构信息
    function  update(){
        $res=0;
        $jigou_id=Session::get('id');
        $result=db('liewu_jigou')->where('id',$jigou_id)->find();
        $this->assign('res', $res);
        $this->assign('result', $result);
        return view("update");
    }
 //机构模块用户推出登录，销毁seesion，显示登录界面

    function tuichu(){
        session("jigou",null);
        return view("login");
    }


    //register(注册页面的控制器方法)
    /**
     * 图片上传
     * @return String 图片的完整URL
     */
    public function doupload()
    {
        $name=input('name');
        $tel=input('tel');
        $address=input('address');
        $password=input('password');

        if($name==null || $tel==null || $address==null || $password==null){

            $res="信息不完全";
            $this->assign("res",$res);
            return $this->fetch('regist');
        }
else{
        $data=[
            'name'=>$name,
            'tel'=>$tel,
            'address'=>$address,
            'password'=>$password
        ];
        //自定义验证规则
        $rule = [
            'tel|手机号'=>'require|mobile|unique:liewu_teacher',
            'name|公司名字'=>'require|unique:liewu_teacher',
            'address|地址'=>'require',
            'password|密码'=>'require',

        ];
        //使用控制层自带的验证类
        $check = $this->validate($data, $rule);
        if(true!==$check){
           $res=$check;
            $this->assign("res",$res);
            return $this->fetch('regist');
        }else{

        $result=db('liewu_jigou')->insertGetId($data);
        $jg_id=$result+0;
        $files = $_FILES['image'];

        $files1 = $_FILES['image1'];


        $info="";
        require_once APP_PATH . '/../vendor/php-sdk-7.2.6/autoload.php';

        $accessKey = 'd3LcRkKtpfplRXql36w8A_Prdhwllfq_8LV3wYt_';
        $secretKey = 'vmLAbYxFOkgFel1RR0etZYif0rT4rbPnm_uOEDmt';

// 要转码的文件所在的空间
        $bucket = 'liewu01';

        //第一张图片
        $date=[];
        for($i=0;$i<(count($files['type'])-1);$i++) {
            $auth = new Auth($accessKey, $secretKey);
            $token = $auth->uploadToken($bucket);
            $temp = explode("/", $files['type'][$i]); //获取文件名按“.”进行分割
            $extension = end($temp); // 获取文件后缀名
            $filePath = $files['tmp_name'][$i];//获取文件路径
            // 上传到七牛后保存的文件名

            $rand = time().rand(1,9999);

            $key = $rand . ".$extension";
            $uploadMgr = new UploadManager();
            list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);

            $newpath = $ret["key"];
            var_dump($newpath);
            if (!empty($newpath)) {
                $filepath = "http://p99tcj5ft.bkt.clouddn.com/" . $newpath;
            } else {
                $this->error("上传失败");
            }
            $date[] = [
                'jg_id' => $jg_id,
                'src' => $filepath,
                'status' => 1
            ];
        }


        //第二张图片
        $date1=[];
        for($i=0;$i<(count($files1['type'])-1);$i++){
            $auth = new Auth($accessKey,$secretKey);
            $token = $auth->uploadToken($bucket);
            $temp = explode("/",$files1['type'][$i]); //获取文件名按“.”进行分割
            $extension = end($temp); // 获取文件后缀名
            $filePath = $files1['tmp_name'][$i];//获取文件路径
            // 上传到七牛后保存的文件名
            $rand = time().rand(1,9999);

            $key = $rand.".$extension";
            $uploadMgr = new UploadManager();
            list($ret,$err) = $uploadMgr->putFile($token, $key, $filePath);
            $newpath1= $ret["key"];
            if(!empty($newpath1)){
                $filepath1 = "http://p99tcj5ft.bkt.clouddn.com/".$newpath1;
            }else{
                echo "上传失败!";
            }
            $date1[]=[
                'jg_id'=>$jg_id,
                'src'=>$filepath1,
                'status'=>2
            ];

        }

//        var_dump($date);
//        var_dump($date1);
//        //将数据集插入到表中
        $result = Db::table('jigou_img')  //指定tp5_staff表
        ->insertAll($date);    // 批量添加
        $result1 = Db::table('jigou_img')  //指定tp5_staff表
        ->insertAll($date1);
        $this->assign("res","注册成功！");
        return view("regist");
}
}

    }

    //update(修改页面的控制器方法)
    /**
     * 图片上传
     * @return String 图片的完整URL
     */
    public function doupdate1()
    {
        $name=input('name');
        $tel=input('tel');
        $address=input('address');

        if($name==null || $tel==null || $address==null ){

            $res="信息不完全";
            $jigou_id=Session::get('id');
            $result=db('liewu_jigou')->where('id',$jigou_id)->find();
            $this->assign('result', $result);
            $this->assign("res",$res);
            return $this->fetch('update');
        }
        else {
            $data = [
                'name' => $name,
                'tel' => $tel,
                'address' => $address,
            ];
            //自定义验证规则
            $rule = [
                'tel|手机号' => 'require|mobile',
                'name|公司名字' => 'require',
                'address|地址' => 'require',

            ];
            //使用控制层自带的验证类
            $check = $this->validate($data, $rule);
            if (true !== $check) {

                $jigou_id=Session::get('id');
                $result=db('liewu_jigou')->where('id',$jigou_id)->find();
                $this->assign('result', $result);
                $res = $check;
                $this->assign("res", $res);
                return $this->fetch('update');
            } else {
                //1、先修改机构表的机构信息
                $jigou_id = Session::get('id');
                $result = db('liewu_jigou')
                    ->where('id', $jigou_id)
                    ->update($data);

                $files = $_FILES['image'];
                $files1 = $_FILES['image1'];

                if ($files['type'][0] !== '' || $files1['type'][0] !== '') {
                    //2、再将之前机构图片地址表的相关地址删除。
if($files['type'][0] !== ''){
    $result = db('jigou_img')
        ->where('id', $jigou_id)
        ->where('status',1)
        ->delete();
}
if($files1['type'][0] !== ''){
    $result = db('jigou_img')
        ->where('id', $jigou_id)
        ->where('status',2)
        ->delete();
}


                    $info = "";
                    require_once APP_PATH . '/../vendor/php-sdk-7.2.6/autoload.php';

                    $accessKey = 'd3LcRkKtpfplRXql36w8A_Prdhwllfq_8LV3wYt_';
                    $secretKey = 'vmLAbYxFOkgFel1RR0etZYif0rT4rbPnm_uOEDmt';

// 要转码的文件所在的空间
                    $bucket = 'liewu01';

                    //第一张图片
                    $date = [];
                    for ($i = 0; $i < (count($files['type']) - 1); $i++) {
                        $auth = new Auth($accessKey, $secretKey);
                        $token = $auth->uploadToken($bucket);
                        $temp = explode("/", $files['type'][$i]); //获取文件名按“.”进行分割
                        $extension = end($temp); // 获取文件后缀名
                        $filePath = $files['tmp_name'][$i];//获取文件路径
                        // 上传到七牛后保存的文件名

                        $rand = time().rand(1,9999);

                        $key = $rand . ".$extension";
                        $uploadMgr = new UploadManager();
                        list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
                        $newpath = $ret["key"];
                        if (!empty($newpath)) {
                            $filepath = "http://p99tcj5ft.bkt.clouddn.com/" . $newpath;
                        } else {
                            $this->error("上传失败");
                        }
                        $date[] = [
                            'jg_id' => $jigou_id,
                            'src' => $filepath,
                            'status' => 1
                        ];
                    }


                    //第二张图片
                    $date1 = [];
                    for ($i = 0; $i < (count($files1['type']) - 1); $i++) {
                        $auth = new Auth($accessKey, $secretKey);
                        $token = $auth->uploadToken($bucket);
                        $temp = explode("/", $files1['type'][$i]); //获取文件名按“.”进行分割
                        $extension = end($temp); // 获取文件后缀名
                        $filePath = $files1['tmp_name'][$i];//获取文件路径
                        // 上传到七牛后保存的文件名

                        $rand = time().rand(1,9999);

                        $key = $rand . ".$extension";
                        $uploadMgr = new UploadManager();
                        list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
                        $newpath1 = $ret["key"];
                        if (!empty($newpath1)) {
                            $filepath1 = "http://p99tcj5ft.bkt.clouddn.com/" . $newpath1;
                        } else {
                            echo "上传失败!";
                        }
                        $date1[] = [
                            'jg_id' => $jigou_id,
                            'src' => $filepath1,
                            'status' => 2
                        ];

                    }

//        var_dump($date);
//        var_dump($date1);
//        //将数据集插入到表中
                    $result = Db::table('jigou_img')//指定tp5_staff表
                    ->insertAll($date);    // 批量添加
                    $result1 = Db::table('jigou_img')//指定tp5_staff表
                    ->insertAll($date1);

                }
            }
            $jigou_id=Session::get('id');
            $result=db('liewu_jigou')->where('id',$jigou_id)->find();
            $this->assign('result', $result);
            $res = "修改成功！";
            $this->assign("res", $res);
            return $this->fetch('update');
        }
    }





    //////////////////////////////////////////////////////////


}